Computer virtualization is a technique that involves encapsulating a physical computing machine platform into a virtual machine that is executed under the control of virtualization software running on a hardware computing platform (also referred to herein as “host system” or “host computer”). A group of hardware computing platforms may be organized as a cluster to provide the hardware resources for virtual machines. In a data center that employs virtual machines, it is common to see hundreds, even thousands, of virtual machines running on multiple clusters of host systems.
Cloud computing refers to distributed allocation of computing resources via a computer network rather than from a single local computer. A “cloud” can include one or more host computers that can be arranged as clusters of host computers. In addition, host computers and clusters of host computer can be arranged in a data center, and multiple data centers can be arranged as “virtual centers.”
Both the initial install and upgrade of the cloud computing environment are often complicated because the interrelationships between various components of the cloud computing environment can be hard to track. For example, differences between hardware, firmware, and software versions of the various components can cause problems in a first component as a result of an installation or upgrade in a second component. If any one component does not install or upgrade successfully, then an entire data center can be rendered inoperable. The administrator must often account for many dependencies between assets and their individual versions, further adding complexity to the install and upgrade process.
Using conventional techniques, a system administrator must plan installs and upgrades very carefully. These processes can be quite complex, since upgrading one asset may require upgrading a few others as well, and this may continue as a domino effect. Furthermore, there may be critical systems running on the virtualized computing environment (e.g., at the data center level), leaving no room for error or downtime.
Another problem with current approaches to installs and upgrades is that conventional approaches typically involve a significant amount of effort by the administrator. The administrator must first take the initiative to discover what new features are available. Later, when creating an install and upgrade plan, the administrator must carefully research (e.g., online) for any information about what precautions to take or dependent installs must be run.
Accordingly, there remains a need in the art for a technique for managing a cloud computing environment that addresses the drawbacks and limitations discussed above.